home *** CD-ROM | disk | FTP | other *** search
-
- /* 入院時医学管理料 TOWNS用 Ver 1.02 H4.11 */
-
- /*TOWNS用 0x1e PC用 0x0b */
- /*TOWNS用 0x1f PC用 0x0a */
- /*TOWNS用 0x1d PC用 0x08 */
- /*TOWNS用 0x1c PC用 0x0c */
- /*TOWNS用 gotoxy PC用 LOCATE */
- /*TOWNS用 FCURS_ON() PC用 CURS_ON()*/
- /*TOWNS用 FCURS_OFF() PC用 CURS_OFF()*/
- #include<stdio.h>
- #include<INC#CONO.H>
- #include<conio.h>
- #include<math.h>
- #include<graphics.h>
-
- #define ue 0x1e
- #define sita 0x1f
- #define hidari 0x1d
- #define migi 0x1c
- #define ch 0x0d
- #define N 31
-
- char mouitido(void);
- void ca1(int,int,int,int,int,int,int,int);
- void ca2(int,int,int,int,int,int,int,int);
- int nen1(void);
- int nen2(void);
- int ca3(int,int,int,int *,int *,int *);
- int ca4(int,int,int,int,int);
- void g_stat(void);
- void g_end(void);
-
- void main(void)
- {
- int ad[N+1];
- static int da[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
- static int db[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
- static int dc[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
- int s[32];
- int h[32];/* 退院日の記憶 */
- int ka,kb,kc,kd,ke;
- int e,d,c,q,q1,hy,hm,hd,ty,tm,td,ttm,t,ds,yy,dd,b,a,i,wy,j;
- int zt,zt1,zt2,e1,g,gd,sy,sm,qq,kt;
- int sw,tss,zx1,zx2,r,rr,p,chx,cu;
-
- printf("\x1b[m");
- CLS();
- tss=0;
- chx=0;
- cu=1;
- for(i=0;i<32;i++){
- s[i]='\0';
- h[i]='\0';
- }
- g_stat();
- gotoxy(1,3);
- printf("\n初期設定をしちゃうよ~ (^_^) ");
- printf("\n\n表示する年は 平成 \x1b[m何年ですか ? ");
- scanf("%d",&sy);rewind(stdin);
- printf("\n表示する月は ? ");
- scanf("%d",&sm);rewind(stdin);
- j=sy;
- sy=1988+sy;
-
- sw=mouitido();
- CLS();
- printf("\n\n\n");
- printf("********** 平成 %d年%d月分 **********\n\n",j,sm);
-
- printf("実日数は ? ");
- q=3;q1=3,tm=0,td=0,d=0;
- while(scanf("%d",&gd)!=0){
-
- e=0;d=0;kt=0;qq=1;
- if(gd==0){
- CLS();
- gotoxy(1,3);
- printf("\n初期設定をしちゃうよ~ (゚v゚)");
- printf("\n\n表示する年は 平成 何年ですか ? ");
- scanf("%d",&sy);rewind(stdin);
- printf("\n表示する月は ? ");
- scanf("%d",&sm);rewind(stdin);
- j=sy;
- sy=1988+sy;
-
- sw=mouitido();
-
- CLS();
- tm=0,td=0,d=0;
- printf("\n\n\n実日数は ? ");
- scanf("%d",&gd);
-
- }
-
- while(qq==1){
-
- c=1;
- printf("\n");
- if(q1==3){
-
- CLS();
- q=nen1();
- gotoxy(25,6);
- printf("入院年は ");
- scanf("%d",&hy);rewind(stdin);
- }
- else{
- q=4;
- CLS();
-
- gotoxy(25,24);
- printf("%d月 %d日 退院からの残日数は %d日",tm,td,d);
-
- gotoxy(25,6);
- printf("入院年は 平成 ");
- scanf("%d",&hy);rewind(stdin);
- }
- gotoxy(25,7);
- printf("入院月は ");
- scanf("%d",&hm);rewind(stdin);
- gotoxy(25,8);
- printf("入院日は ");
- scanf("%d",&hd);rewind(stdin);
- if(q==3)
- hy=1925+hy;
- if(q==4)
- hy=1988+hy;
- printf("\n");
- if(q==3){
-
- gotoxy(25,10);
- printf("\x1b[Y");/*カ-ソルから終わりまで消去*/
- q1=nen2();
- gotoxy(25,11);
- printf("退院年は ");
- scanf("%d",&ty);rewind(stdin);
-
- }
- else{
- q1=4;
- gotoxy(25,11);
- printf("\x1b[Y");/*カ-ソルから終わりまで消去*/
- printf("退院年は 平成 ");
- scanf("%d",&ty);rewind(stdin);
- }
- if(ty==0){
- ty=j;
- tm=sm;
- td=0;
- printf("\n");
- }
- else{
- gotoxy(25,12);
- printf("退院月は ");
- scanf("%d",&tm);rewind(stdin);
- gotoxy(25,13);
- printf("退院日は ");
- scanf("%d",&td);rewind(stdin);
- printf("\n");
- }
- if(q1==3)
- ty=1925+ty;
- if(q1==4)
- ty=1988+ty;
- h[cu]=td;/* 退院日を記憶する */
- /* ★★★退院日 0 の時の退院日の計算★★★ */
-
- if(hy==sy && hm==sm && td==0){
- td=hd+(gd-kt)-1;
- qq=0;
- }
- else if(td==0){
- td=gd;
- qq=0;
- }
-
- if(tm==sm && ty==sy)
- zt=td;
- if(hm==sm && hy==sy)
- zt=td-hd+1;
-
- if(ty==sy && tm==sm)
- kt=kt+zt;
-
- if(kt==gd)
- qq=0;
-
- /* ★★★入院月(HM)から退院月(TM)までの月数 TTM ★★★ */
-
-
- ttm=0;
- t=0;
-
-
- if(hy<ty && ty-hy>1)
- ttm=(12-hm)+tm+(ty-hy-1)*12;
-
- if(hy<ty && ty-hy==1)
- ttm=(12-hm)+tm;
-
- if(hy==ty)
- ttm=tm;
- else
- ttm=hm+ttm;
-
- /* ★★★HD~TDまでの日数 T ★★★ */
-
- ds=hm;
- yy=hy;
-
- for(i=hm;i<=ttm;i++){
-
- if(yy%4==0 && yy%100!=0 || yy%400==0 )
- db[2]=29;
- else
- db[2]=28;
-
- t=t+db[ds];
- ds=ds+1;
- if(ds==13){
- ds=1;
- yy=yy+1;
- }
- }
- t=t-(hd-1)-(db[tm]-td);
- /* ★★★ 外泊用s[]に入院日数を入れる ★★★ */
- if(sy!=hy && sy==ty && sm==tm || sm!=hm && sy==ty && sm==tm)
- p=td;
- if(sy==hy && sm==hm && sy==ty && sm==tm)
- p=td-hd+1;
- if(sy!=hy && sy==ty && sm==tm || sm!=hm && sy==ty && sm==tm){
- /* 退院日と入院日が同日の時の処理 */
- /* if(hd==h[cu-1] || h[cu-1] != 0 && hd==td){*/
- /* for(i=1;i<=p+1;i++)*/
- /* s[i]=9;*/
- /* }*/
- /* else{*/
- for(i=1;i<=p;i++)
- s[i]=9;
- /* }*/
- }
- if(sy==hy && sm==hm && sy==ty && sm==tm){
- /* 退院日と入院日が同日の時の処理 */
- /* if(hd==h[cu-1] || h[cu-1] != 0 && hd==td){*/
- /* for(i=hd;i<=hd+p;i++)*/
- /* s[i]=9;*/
- /* }*/
- /* else{*/
- for(i=hd;i<=hd+p-1;i++)
- s[i]=9;
- /* }*/
- }
- tss=tss+t;
- cu++;
- /* ★★★入院開始日 DD の計算 <<入院日(HD)+残日数(D)>>★★★ */
-
- if(hy%4==0 && hy%100!=0 || hy%400==0 )
- da[2]=29;
- else
- da[2]=28;
-
- if(t>d){
- dd=hd+d;
- if(dd<=da[hm])
- hd=dd;
- else if(dd>da[hm] && hm!=12){
- hd=dd-da[hm];
- hm=hm+1;
- }
- else if(dd>da[hm] && hm==12){
- hd=dd-da[hm];
- hm=1;
- hy=hy+1;
- }
- }
- /* ★★★残日数の判定 C <<C=1繰り返し C=2終了>>★★★ */
-
- a=hm;
- wy=hy;
-
- while(c==1){
-
- b=hd-1;
- e=e+1;
-
- if(a==tm && wy==ty)
- c=2;
-
- if(a!=12)
- a=a+1;
- else{
- a=1;
- wy=wy+1;
- }
- if(wy%4==0 && wy%100!=0 || wy%400==0 )
- dc[2]=29;
- else
- dc[2]=28;
-
- if(tm==2 && hd>dc[2])
- b=dc[2];
-
- if(wy>ty)
- c=2;
- if(a==tm && wy==ty)
- c=2;
-
- /* ★★★残日数 D の計算★★★ */
-
- if(t<=d){
- d=d-t;
- e=e-1;
- }
- else if(hm==tm && hy==ty)
- d=dc[hm]-td+b;
- else if(a==tm && wy==ty && b>=td)
- d=b-td;
- else if(a==tm && wy==ty && b<td){
- d=dc[tm]-td+b;
- e=e+1;
- }
- }
- }
- /*--------------------------------------------*/
- zt=gd;
-
- zt1=dc[tm]-d;
- if(gd<zt1)
- zt2=gd;
- else
- zt2=gd-zt1;
-
- e1=e-1;
- if(gd==zt2)
- zt1=0;
-
- for(g=0;g<N+1;g++)
- ad[g]=0;
- zt=ca3(zt,tss,gd,&zt2,&zx1,&zx2);
-
- /* ★★★外泊日の計算★★★ */
-
- ka=zx1;
- kb=zx2;
- kc=zt2;
- kd=zt1;
- ke=zt;
-
- for(i=1;i<=31;i++){
- if(s[i]==9){
- if(ka>0){
- s[i]=1;
- ka=ka-1;
- }
- else if(kb>0){
- s[i]=2;
- kb=kb-1;
- }
- else if(kc>0){
- s[i]=4;
- kc=kc-1;
- }
- else if(kc==0){
- s[i]=5;
- kd=kd-1;
- }
- }
- }
- r=0;rr=0;
- rr=zt1;
-
- do{
- gotoxy(25,15);
- printf("外泊日? ");
- scanf("%d",&g);rewind(stdin);
- s[g]='\0';
- if(g>0)
- ke=ke-1;
- ad[g]=1;
- r=r+1;
- }while(g>0);
-
- ka=kb=kc=kd=0;
- for(i=1;i<=31;i++){
- if(s[i]==1)
- ka=ka+1;
- else if(s[i]==2)
- kb=kb+1;
- else if(s[i]==4)
- kc=kc+1;
- else if(s[i]==5)
- kd=kd+1;
- }
-
- zt=ke+(zx1+zx2-ka-kb);
- zx2=kb;
- zx1=ka;
- zt2=kc;
- zt1=kd;
-
- if(r>1 && zt1==0 && e>1 && rr>0)
- e=e-1;
-
- CLS();
- gotoxy(16,5);
- printf("ノ-マル");
-
- if(sw=='1' || sw=='3' || sw=='5' || sw=='7'){
-
- gotoxy(37,5);
- printf("×1.05");
- gotoxy(67,5);
- printf("×1.1");
- }
- gotoxy(1,10);
-
- chx=ca4(tss,gd,sw,zx1,zx2);
-
- if(sw=='1' || sw=='2' || sw=='3'|| sw=='5' || sw=='6'|| sw=='7')
- ca1(e,e1,zt,zt1,zt2,sw,tss,chx);
- if(sw=='4' || sw=='8')
- ca2(e,e1,zt,zt1,zt2,sw,tss,chx);
- if(sw=='9' && e==1 || sw=='9' && zt1==0){
- printf("%d月以内 %d日\n",e,zt);
- }
- else if(sw=='9'){
- printf("%d月以内 %d日\n\n",e1,zt2);
- printf("%d月以内 %d日\n\n",e,zt1);
- }
-
-
- printf("\n\n");
-
- tss=0;
- chx=0;
- cu=1;
- for(i=0;i<32;i++){
- s[i]='\0';
- h[i]='\0';
- }
-
- printf("\n*** 新規入力します。 何かキ-を押してください。 ***");
- getch();
-
- CLS();
- gotoxy(1,4);
- printf("0で初期設定・終了する時は 0~9以外を入力してよ~ん。\n\n");
- printf("**********平成 %d年%d月分********** \n\n",j,sm);
-
- printf("実日数は ?");
- q=3;q1=3;
-
- }
- g_end();
- }
-
- void ca1(int e,int e1,int zt,int zt1,int zt2,int sw,int t,int chx)
- {
- double m1,m2,m3,m4,m5,m6,m7,ka,ex1,ex2,f4,f5,f6,f7,fa,fb,ffa,ffb;
- double ff4,ff5,ff6,ff7,mm4,mm5,mm6,mm7,ex1a,ex2b;
- int it,i,x,y;
- switch(sw){
- case'1':
- m1=331;m2=235;m3=222;m4=151;m5=117;m6=98;m7=96;sw=1;
- break;
- case'2':
- m1=158;m2=124;m3=119;m4=88;m5=71;m6=67;m7=65;sw=2;
- break;
- case'3':
- m1=331;m2=235;m3=222;m4=151;m5=115;m6=90;m7=80;sw=3;
- break;
- case'5':
- m1=326;m2=230;m3=217;m4=146;m5=114;m6=95;m7=93;sw=5;
- break;
- case'6':
- m1=155;m2=121;m3=116;m4=85;m5=69;m6=66;m7=63;sw=6;
- break;
- case'7':
- m1=326;m2=230;m3=217;m4=146;m5=108;m6=82;m7=72;sw=7;
- break;
- }
- if(e==1 && zt1==0) ex1=m1;
- if(e==2 && zt1==0) ex1=m2;
- if(e==3 && zt1==0) ex1=m3;
-
- if(e==1 && zt1>0){ ex1=m1;ex2=m2;}
- if(e==2 && zt1>0){ ex1=m1;ex2=m2;}
- if(e==3 && zt1>0){ ex1=m2;ex2=m3;}
-
- if(e==1 && zt2==0) ex1=m1;
- if(e==2 && zt2==0) ex1=m2;
- if(e==3 && zt2==0) ex1=m3;
-
- it=0;
- if(e==4 && zt1>0 && zt2>0){ e1=3;e=6;ex1=m3;ex2=m4;it=1;}
- if(e==4 && zt1==0 || e==4 && zt2==0 || e>4 && e<=6 && it != 1 ){ ex1=m3;e=6;ex2=m4;it=2;}
- if(e==7 && zt1==0 || e==7 && zt2==0 || e>7 && e<=12 && it != 1 ){ e=12;it=2;}
- if(e==13 && zt1==0 || e==13 && zt2==0 || e>13 && e<=18 && it != 1 ){ e=18;it=2;}
- if(e==19 && zt1==0 || e==19 && zt2==0 || e>19){ e=20;it=2;}
- if(chx==1) y=12+2;
- else y=12;
- gotoxy(1,y);
- x=35;
- ka=1.05;
- for(i=0;i<=1;i++){
- if(sw==2 || sw==6)
- i=1;
- if(e==1 || e<=3 && zt2==0 || zt1==0 && e<=3){
- if(t>14 || zt>0){
- fa=floor(ex1*ka);
- ffa=ex1*ka-fa;
- fa=floor(ffa*10);
- if(fa>4)
- ex1a=floor(ex1*ka)+1.0;
- else
- ex1a=floor(ex1*ka);
- printf("%d月以内 %3.0lf点×%d日\n",e,ex1,zt);
- if(sw==1 || sw==3 || sw==5 || sw==7){
- gotoxy(x,y);
- printf("%3.0lf点×%d日\n\n",ex1a,zt);
- }
- }
- }
- else if(e==4 && zt2==0 || e>4 && e<=6 && it==2){
- f4=floor(m4*ka);
- ff4=m4*ka-f4;
- f4=floor(ff4*10);
- if(f4>4)
- mm4=floor(m4*ka)+1.0;
- else
- mm4=floor(m4*ka);
- printf("6月以内 %3.0lf点×%d日\n",m4,zt);
- if(sw==1 || sw==3 || sw==5 || sw==7){
- gotoxy(x,y);
- printf("%3.0lf点×%d日\n\n",mm4,zt);
- }
- }
- else if(e==7 && zt2==0 || e>7 && e<=12){
- f5=floor(m5*ka);
- ff5=m5*ka-f5;
- f5=floor(ff5*10);
- if(f5>4)
- mm5=floor(m5*ka)+1.0;
- else
- mm5=floor(m5*ka);
- printf("1年以内 %3.0lf点×%d日\n",m5,zt);
- if(sw==1 || sw==3 || sw==5 || sw==7){
- gotoxy(x,y);
- printf("%3.0lf点×%d日\n\n",mm5,zt);
- }
- }
- else if(e==13 && zt2==0 || e>13 && e<=18){
- f6=floor(m6*ka);
- ff6=m6*ka-f6;
- f6=floor(ff6*10);
- if(f6>4)
- mm6=floor(m6*ka)+1.0;
- else
- mm6=floor(m6*ka);
- printf("1年6月以内 %3.0lf点×%d日\n",m6,zt);
- if(sw==1 || sw==3 || sw==5 || sw==7){
- gotoxy(x,y);
- printf("%3.0lf点×%d日\n\n",mm6,zt);
- }
- }
- else if(e==18 && zt2==0 || e>19){
- f7=floor(m7*ka);
- ff7=m7*ka-f7;
- f7=floor(ff7*10);
- if(f7>4)
- mm7=floor(m7*ka)+1.0;
- else
- mm7=floor(m7*ka);
- printf("1年6月以上 %3.0lf点×%d日\n",m7,zt);
- if(sw==1 || sw==3 || sw==5 || sw==7){
- gotoxy(x,y);
- printf("%3.0lf点×%d日\n\n",mm7,zt);
- }
- }
- else if(e>1 && e<=6){
- fa=floor(ex1*ka);
- ffa=ex1*ka-fa;
- fa=floor(ffa*10);
- if(fa>4)
- ex1a=floor(ex1*ka)+1.0;
- else
- ex1a=floor(ex1*ka);
- fb=floor(ex2*ka);
- ffb=ex2*ka-fb;
- fb=floor(ffb*10);
- if(fb>4)
- ex2b=floor(ex2*ka)+1.0;
- else
- ex2b=floor(ex2*ka);
- printf("%d月以内 %3.0lf点×%d日\n\n",e1,ex1,zt2);
- printf("%d月以内 %3.0lf点×%d日\n\n",e,ex2,zt1);
- if(sw==1 || sw==3 || sw==5 || sw==7){
- gotoxy(x,y);
- printf("%3.0lf点×%d日\n\n",ex1a,zt2);
- gotoxy(x,y+2);
- printf("%3.0lf点×%d日\n\n",ex2b,zt1);
- }
- }
-
- else if(e>6 && e<=12){
- f4=floor(m4*ka);
- ff4=m4*ka-f4;
- f4=floor(ff4*10);
- if(f4>4)
- mm4=floor(m4*ka)+1.0;
- else
- mm4=floor(m4*ka);
- f5=floor(m5*ka);
- ff5=m5*ka-f5;
- f5=floor(ff5*10);
- if(f5>4)
- mm5=floor(m5*ka)+1.0;
- else
- mm5=floor(m5*ka);
- printf("6月以内 %3.0lf点×%d日\n\n",m4,zt2);
- printf("1年以内 %3.0lf点×%d日\n\n",m5,zt1);
- if(sw==1 || sw==3 || sw==5 || sw==7){
- gotoxy(x,y);
- printf("%3.0lf点×%d日\n\n",mm4,zt2);
- gotoxy(x,y+2);
- printf("%3.0lf点×%d日\n\n",mm5,zt1);
- }
- }
- else if(e>12 && e<=18){
- f5=floor(m5*ka);
- ff5=m5*ka-f5;
- f5=floor(ff5*10);
- if(f5>4)
- mm5=floor(m5*ka)+1.0;
- else
- mm5=floor(m5*ka);
- f6=floor(m6*ka);
- ff6=m6*ka-f6;
- f6=floor(ff6*10);
- if(f6>4)
- mm6=floor(m6*ka)+1.0;
- else
- mm6=floor(m6*ka);
- printf("1年以内 %3.0lf点×%d日\n\n",m5,zt2);
- printf("1年6月以内 %3.0lf点×%d日\n\n",m6,zt1);
- if(sw==1 || sw==3 || sw==5 || sw==7){
- gotoxy(x,y);
- printf("%3.0lf点×%d日\n\n",mm5,zt2);
- gotoxy(x,y+2);
- printf("%3.0lf点×%d日\n\n",mm6,zt1);
- }
- }
- else if(e==19){
- f6=floor(m6*ka);
- ff6=m6*ka-f6;
- f6=floor(ff6*10);
- if(f6>4)
- mm6=floor(m6*ka)+1.0;
- else
- mm6=floor(m6*ka);
- f7=floor(m7*ka);
- ff7=m7*ka-f7;
- f7=floor(ff7*10);
- if(f7>4)
- mm7=floor(m7*ka)+1.0;
- else
- mm7=floor(m7*ka);
- printf("1年6月以内 %3.0lf点×%d日\n\n",m6,zt2);
- printf("1年6月以上 %3.0lf点×%d日\n\n",m7,zt1);
- if(sw==1 || sw==3 || sw==5 || sw==7){
- gotoxy(x,y);
- printf("%3.0lf点×%d日\n\n",mm6,zt2);
- gotoxy(x,y+2);
- printf("%3.0lf点×%d日\n\n",mm7,zt1);
- }
- }
- gotoxy(1,y);
- x=65;
- ka=1.1;
- }
- printf("\n\n");
- }
-
-
- void ca2(int e,int e1,int zt,int zt1,int zt2,int sw,int t,int chx)
- {
- double m1,m2,m3,m4,m5,m6,m7,ex1,ex2;
-
- int it,y;
- if(e==2) /* 2月~3月合算の処理*/
- e=3;
- if(e1==2)
- e1=3;
- switch(sw){
-
- case'4':
- m1=151;m2=120;m3=90;m4=72;m5=67;m6=65;m7=61;sw=4;
- break;
- case'8':
- m1=149;m2=117;m3=87;m4=70;m5=67;m6=63;m7=58;sw=8;
- break;
- }
- if(e==1 && zt1==0) ex1=m1;
- if(e>=2 && e<=3 && zt1==0) ex1=m2;
-
- if(e==1 && zt1>0){ ex1=m1;ex2=m2;}
- if(e>=2 && e<=3 && zt1>0){ ex1=m1;ex2=m2;}
-
- if(e==1 && zt2==0) ex1=m1;
- if(e>=2 && e<=3 && zt2==0) ex1=m2;
-
- if(e==3 && e1==3){ /* 2月~3月合算の処理*/
- ex1=m2;
- zt1=0;
- zt2=0;
- }
-
-
- it=0;
- if(e==4 && zt1>0 && zt2>0){ e1=3;e=6;ex1=m2;ex2=m3;it=1;}
-
- if(e==4 && zt1==0 || e==4 && zt2==0 || e>4 && e<=6 && it != 1){ ex1=m2;e=6;ex2=m3;it=2;}
- if(e==7 && zt1==0 || e==7 && zt2==0 || e>7 && e<=12 && it != 1 ){ e=12;it=2;}
- if(e==13 && zt1==0 || e==13 && zt2==0 || e>13 && e<=18 && it != 1 ){ e=18;it=2;}
- if(e==19 && zt1==0 || e==19 && zt2==0 || e>19 && e<=24 && it != 1 ){ e=24;it=2;}
- if(e==25 && zt1==0 || e==25 && zt2==0 || e>25){ e=26;it=2;}
-
- if(chx==1) y=12+2;
- else y=12;
-
- gotoxy(1,y);
-
- if(e==1 || e<=3 && zt2==0 || zt1==0 && e<=3){
- if(t>14 || zt>0){
- printf("%d月以内 %3.0lf点×%d日\n",e,ex1,zt);
- }
- }
- else if(e==4 && zt2==0 && it==2 || e>4 && e<=6 && it==2){
- printf("6月以内 %3.0lf点×%d日\n",m3,zt);
- }
- else if(e==7 && zt2==0 || e>7 && e<=12){
- printf("1年以内 %3.0lf点×%d日\n",m4,zt);
- }
- else if(e==13 && zt2==0 || e>13 && e<=18){
- printf("1年6月以内 %3.0lf点×%d日\n",m5,zt);
- }
- else if(e==19 && zt2==0 || e>19 && e<=24){
- printf("2年以内 %3.0lf点×%d日\n",m6,zt);
- }
- else if(e==25 && zt2==0 || e>25){
- printf("2年以上 %3.0lf点×%d日\n",m7,zt);
- }
- else if(e>1 && e<=6){
- printf("%d月以内 %3.0lf点×%d日\n\n",e1,ex1,zt2);
- printf("%d月以内 %3.0lf点×%d日\n\n",e,ex2,zt1);
- }
- else if(e>6 && e<=12){
- printf("6月以内 %3.0lf点×%d日\n\n",m3,zt2);
- printf("1年以内 %3.0lf点×%d日\n\n",m4,zt1);
- }
- else if(e>12 && e<=18){
- printf("1年以内 %3.0lf点×%d日\n\n",m4,zt2);
- printf("1年6月以内 %3.0lf点×%d日\n\n",m5,zt1);
- }
- else if(e>18 && e<=24){
- printf("1年6月以内 %3.0lf点×%d日\n\n",m5,zt2);
- printf("2年以内 %3.0lf点×%d日\n\n",m6,zt1);
- }
- else if(e==25){
- printf("2年以内 %3.0lf点×%d日\n\n",m6,zt2);
- printf("2年以上 %3.0lf点×%d日\n\n",m7,zt1);
- }
-
- printf("\n\n");
- }
- char mouitido()
- {
-
- int a,d,x;
-
- d='1';
- x=2;
- FCURS_OFF();
- CLS();
- gotoxy(25,5);printf("\x1b[7m");
- printf("甲表 ----- 一般 ----- 病院 ===> 1 ");
- gotoxy(25,7);printf("\x1b[m");
- printf("甲表 ----- 一般 ----- 診療所 ===> 2 ");
- gotoxy(25,9);
- printf("甲表 ----- 老人 ----- 病院 ===> 3 ");
- gotoxy(25,11);
- printf("甲表 ----- 老人 ----- 診療所 ===> 4 ");
- gotoxy(25,13);
- printf("乙表 ----- 一般 ----- 病院 ===> 5 ");
- gotoxy(25,15);
- printf("乙表 ----- 一般 ----- 診療所 ===> 6 ");
- gotoxy(25,17);
- printf("乙表 ----- 老人 ----- 病院 ===> 7 ");
- gotoxy(25,19);
- printf("乙表 ----- 老人 ----- 診療所 ===> 8 ");
- gotoxy(25,21);
- printf("9でノ-マルモ-ドだよ(^_^) ");
-
- do{
- a=getch();
- if(a==ue){
- if(d=='1')
- d='9';
- else
- --d;
- }
- else if(a==sita){
- if(d=='9')
- d='1';
- else
- ++d;
- }
- else if(a==ch)
- x=1;
- else if(a=='1' || a=='2' || a=='3' || a=='4' || a=='5'
- || a=='6' || a=='7' || a=='8' || a=='9'){
- d=a;
- x=1;
- }
- if(d=='9' || d=='2'){
- gotoxy(25,5); printf("\x1b[m");
- printf("甲表 ----- 一般 ----- 病院 ===> 1 ");
- }
- if(d=='1' || d=='3'){
- gotoxy(25,7);printf("\x1b[m");
- printf("甲表 ----- 一般 ----- 診療所 ===> 2 ");
- }
- if(d=='2' || d=='4'){
- printf("\x1b[m");
- gotoxy(25,9);
- printf("甲表 ----- 老人 ----- 病院 ===> 3 ");
- }
- if(d=='3' || d=='5'){
- printf("\x1b[m");
- gotoxy(25,11);
- printf("甲表 ----- 老人 ----- 診療所 ===> 4 ");
- }
- if(d=='4' || d=='6'){
- printf("\x1b[m");
- gotoxy(25,13);
- printf("乙表 ----- 一般 ----- 病院 ===> 5 ");
- }
- if(d=='5' || d=='7'){
- printf("\x1b[m");
- gotoxy(25,15);
- printf("乙表 ----- 一般 ----- 診療所 ===> 6 ");
- }
- if(d=='6' || d=='8'){
- printf("\x1b[m");
- gotoxy(25,17);
- printf("乙表 ----- 老人 ----- 病院 ===> 7 ");
- }
- if(d=='7' || d=='9'){
- printf("\x1b[m");
- gotoxy(25,19);
- printf("乙表 ----- 老人 ----- 診療所 ===> 8 ");
- }
- if(d=='8' || d=='1'){
- printf("\x1b[m");
- gotoxy(25,21);
- printf("9でノ-マルモ-ドだよ(^_^) ");
- }
- if(d=='1'){
- gotoxy(25,5); printf("\x1b[7m");
- printf("甲表 ----- 一般 ----- 病院 ===> 1 ");
- }
- if(d=='2'){
- gotoxy(25,7);printf("\x1b[7m");
- printf("甲表 ----- 一般 ----- 診療所 ===> 2 ");
- }
- if(d=='3'){
- printf("\x1b[7m");
- gotoxy(25,9);
- printf("甲表 ----- 老人 ----- 病院 ===> 3 ");
- }
- if(d=='4'){
- printf("\x1b[7m");
- gotoxy(25,11);
- printf("甲表 ----- 老人 ----- 診療所 ===> 4 ");
- }
- if(d=='5'){
- printf("\x1b[7m");
- gotoxy(25,13);
- printf("乙表 ----- 一般 ----- 病院 ===> 5 ");
- }
- if(d=='6'){
- printf("\x1b[7m");
- gotoxy(25,15);
- printf("乙表 ----- 一般 ----- 診療所 ===> 6 ");
- }
- if(d=='7'){
- printf("\x1b[7m");
- gotoxy(25,17);
- printf("乙表 ----- 老人 ----- 病院 ===> 7 ");
- }
- if(d=='8'){
- printf("\x1b[7m");
- gotoxy(25,19);
- printf("乙表 ----- 老人 ----- 診療所 ===> 8 ");
- }
- if(d=='9'){
- printf("\x1b[7m");
- gotoxy(25,21);
- printf("9でノ-マルモ-ドだよ(^_^) ");
- }
- }while(x==2);
- FCURS_ON();
- printf("\x1b[m");
- CLS();
- return(d);
- }
-
-
- int nen1()
- {
- int x,q;
- char a;
-
- FCURS_OFF();
- x=4;
- q=4;
- gotoxy(25,5);
- printf("\x1b[m入院年は");
- gotoxy(35,5);
- printf("\x1b[m昭和");
- gotoxy(43,5);
- printf("\x1b[7m平成");
- do{
- a=getch();
- if(a==hidari){
- gotoxy(35,5);
- printf("\x1b[7m昭和");
- gotoxy(43,5);
- printf("\x1b[m平成");
- q=3;
- }
- else if(a==migi){
- gotoxy(35,5);
- printf("\x1b[m昭和");
- gotoxy(43,5);
- printf("\x1b[7m平成");
- q=4;
- }
- else if(a==ch)
- x=2;
-
- }while(x>2);
- FCURS_ON();
- printf("\x1b[m");
- return(q);
- }
-
- int nen2()
- {
- int x,q1;
- char a;
-
- FCURS_OFF();
- x=4;
- q1=4;
- gotoxy(25,10);
- printf("\x1b[m退院年は");
- gotoxy(35,10);
- printf("\x1b[m昭和");
- gotoxy(43,10);
- printf("\x1b[7m平成");
- do{
- a=getch();
- if(a==hidari){
- gotoxy(35,10);
- printf("\x1b[7m昭和");
- gotoxy(43,10);
- printf("\x1b[m平成");
- q1=3;
- }
- else if(a==migi){
- gotoxy(35,10);
- printf("\x1b[m昭和");
- gotoxy(43,10);
- printf("\x1b[7m平成");
- q1=4;
- }
- else if(a==ch)
- x=2;
-
- }while(x>2);
- FCURS_ON();
- printf("\x1b[m");
- return(q1);
- }
-
- int ca3(int zt,int tt,int gd,int *zt2,int *pzx1,int *pzx2)
- {
- int zx,zx1,zx2,za,zb,zaa,zxx;
- zx1=0;zx2=0;
- zx=zt;
- za=tt-gd;
- zaa=za-7;
- zb=14-za;
- if(za<=14){
- if(zb!=0 && zb<=7){
- if(gd<=zb){
- zx2=gd;
- zx=0;
- }
- else{
- zx2=zb;
- zx=gd-zx2;
- }
- }
- if(zb>7){
- if(tt<=7 && za<=7)
- zx1=gd;
- if(tt<=7 && za>7)
- zx1=0;
- if(tt>7 && za<=7)
- zx1=7-za;
- if(gd<=zb){
- if(za>7)
- zx2=gd-zx1-zaa;
- if(za<=7)
- zx2=gd-zx1;
- }
- if(gd>zb){
- if(za>7){
- zx2=7-zaa;
- }
- if(za<=7)
- zx2=7;
- }
- zx=gd-(zx1+zx2);
- }
- }
- zxx=*zt2;
- zxx=zxx-(zx1+zx2);
- *zt2=zxx;
- *pzx1=zx1;
- *pzx2=zx2;
- return(zx);
- }
- int ca4(int ptt,int pgd,int psw,int pzx1,int pzx2)
- {
- int za,i,x,chx;
- double m1,m2,ka,mm2,f1,ff1;
- za=ptt-pgd;
-
- switch(psw){
- case'1':
- m2=521.0;
- break;
- case'2':
- m1=259.0;m2=231.0;
- break;
- case'3':
- m2=521.0;
- break;
- case'4':
- m1=232.0;m2=221.0;
- break;
- case'5':
- m2=516.0;
- break;
- case'6':
- m1=256.0;m2=228.0;
- break;
- case'7':
- m2=516.0;
- break;
-
- case'8':
- m1=227.0;m2=214.0;
- break;
- }
-
- if(psw == '1' || psw == '3' || psw == '5' || psw == '7'){
- pzx2=pzx2+pzx1;
- psw='1';
- }
- else
- psw='2';
-
- if(za<=14){
- if(pzx1==0 && pzx2!=0 || psw=='1'){
- printf("2週間以内 %3.0lf点×%d日\n\n",m2,pzx2);
- chx=0;
- }
- if(pzx2==0 && pzx1!=0 && psw=='2'){
- printf("1週間以内 %3.0lf点×%d日\n\n",m1,pzx1);
- chx=0;
- }
- if(pzx1!=0 && pzx2!=0 && psw=='2'){
- printf("1週間以内 %3.0lf点×%d日\n\n",m1,pzx1);
- printf("2週間以内 %3.0lf点×%d日\n\n",m2,pzx2);
- chx=1;
- }
- x=35;
- ka=1.05;
- for(i=0;i<=1;i++){
-
- if(za<=14 && psw=='1'){
- if(pzx1==0 && pzx2!=0 || psw=='1'){
- gotoxy(x,10);
- f1=floor(m2*ka);
- ff1=m2*ka-f1;
- f1=floor(ff1*10);
- if(f1>4)
- mm2=floor(m2*ka)+1.0;
- else
- mm2=floor(m2*ka);
- printf("%3.0lf点×%d日\n\n",mm2,pzx2);
- }
- }
- x=65;
- ka=1.1;
- }
- }
-
- return(chx);
- }
- void g_stat()
- {
- int graphdriver = DETECT,graphmode;/*自動検出を要求*/
- initgraph(&graphdriver,&graphmode, "");/*グラフィックの初期化*/
- getbkcolor();/*グラフィックのカレントバックカラ-を得る*/
- /*setbkcolor(4);/*グラフィックのカレントバックカラ-をセットする*/
- setfillstyle(1,2);/*グラフィックのフィルパタ-ンとフィルカラ-をセット*/
- setcolor(6);/*ドロウカラ-にパレット番号を設定*/
-
- setcolor(5);
- setfillstyle(SOLID_FILL,LIGHTGREEN);
- bar3d(0,0,639,26,0,0);
- setcolor(RED);
- outtextxy(60,6,"入院時医学管理料計算ソフト TTS Ver 1.02 H4.11 kazu");
-
- }
-
- void g_end()
- {
-
- closegraph();/*グラフィックを終了*/
- clrscr();/*テキスト画面クリア*/
-
- }